1. Field of the Invention
The present invention relates to data processing devices and data processing methods, and program providing media used therewith. In particular, the present invention relates to a data processing device and method in which content stored in a storage device is protected under high security management, and a program providing medium used therewith.
2. Description of the Related Art
With the rapid spread of the Internet in recent years and the spread of compact mobile players and portable game machines, the distribution of various types of software data (hereinafter referred to as xe2x80x9ccontentxe2x80x9d), such as music data, game programs, and image data, via a network such as the Internet or by storage media, such as digital versatile disks (DVDs), compact disks (CDs), and memory cards, is rapidly increasing. The distributed content is received via the network and is stored in a play-only device or a storage medium of a game machine which belongs to a user, or a memory card containing the content is loaded into the game machine, whereby content-playback processing or the execution of a program can be performed.
Content storage devices include a flash memory, which is commonly used. The flash memory is a form of electrically rewritable, non-volatile memory called an xe2x80x9celectrically erasable, programmable read-only memory (EEPROM)xe2x80x9d. The degree of integration of conventional EEPROMs is limited because the use of two transistors for one bit results in a large occupied area per bit. Conversely, in the flash memory, by using an all-bit batch erasure, one bit is implemented by one transistor. It is expected that flash memories will replace recording media such as magnetic disks and optical disks.
A type of memory card is also known in which the flash memory can be loaded/unloaded into/from a data recording/playback device. By using this memory card, a digital audio recorder/player in which a memory card is used instead of a conventional disk medium such as CD or MiniDisk (registered trademark) (MD) can be provided.
When such a content storage device using the flash memory is used in a personal computer, a playback unit, or the like, a file management system called a xe2x80x9cfile allocation table (FAT)xe2x80x9d is generally used as an access information table. In the FAT system, after defining necessary files, the parameters required for the files are sequentially set from the first file. As a result, the file size can be set to be variable, and one or more management units (e.g., sectors or clusters) can constitute one file. Details related matters to the management units are written in the FAT. In the FAT system, the file structure can be easily formed regardless of the physical properties of the recording medium. Accordingly, the FAT system can be employed not only in floppy disks and hard disks but also in magneto-optical disks. The FAT system is employed in the above memory card.
Various content, such as music data, image data, or programs, are accessed based on the FAT from, for example, the above flash memory in response to a user""s instruction from an information device which is used as a playback unit, a game machine, or a personal computer, or to a user""s instruction via an input device connected to the information device. The content is played back by the information device or on a display and a speaker which are connected thereto.
In general, the distribution rights, etc., of much software content, such as game programs, music data, and image data, are possessed by the creators and sellers of the content. Accordingly, in the distribution of the contents, security limitation of usage is commonly employed in which unauthorized duplication, etc., is prevented by permitting only a registered user to use the content.
One technique enabling limitation of use by the user is encryption processing on the content to be distributed. Specifically, various encrypted contents, such as encrypted audio data, image data, and game programs, are distributed via, for example the Internet, and only a person who is identified as a registered user is supplied with a means for decrypting the distributed content, that is, a decryption key.
The encrypted data can be processed to form usable decrypted data (plaintext) by performing decryption processing based on predetermined processes. This method of data encryption and decryption which uses an encryption key for information encryption processing and a decryption key for decryption processing has been conventionally known.
By way of example, in a case in which a file system in the operating system of a personal computer manages files by independently reading a FAT stored as an access information table in recording media, the file system of the personal computer can freely rewrites the contents of the FAT.
Therefore, from recording media storing content managed by an access information table (FAT) in which a write-protected area is set, the access information table can be read and rewritten by the file system of the personal computer, so that data (content) in the recording media which is originally prevented from being rewritten can be rewritten. This causes a problem of insufficient content protection.
The present invention is made in view of the foregoing circumstances. It is an object of the present invention to provide a data processing device, a data storage device, and a data processing method in which the rewriting of data in recording media which is prevented from being rewritten is properly prevented, thus enhancing content protection. It is also an object of the present invention to provide a program providing medium used therewith.
To these ends, according to a first aspect of the present invention, there is provided a data processing device including a memory interface unit for accessing a data storage unit, and a control unit for controlling the memory interface unit. An access permission table which is stored in a data storage area in the data storage unit is set in the memory interface unit, and in response to an access command to access the data storage unit, which is issued by the control unit, the memory interface unit determines, by referring to the access permission table, whether or not to execute the access command, whereby processing which is set executable by the access permission table is only executed.
Preferably, the data storage area in the data storage unit is a flash memory having a plurality of blocks, each of which consists of a plurality of sectors which each have a predetermined data capacity, in the access permission table, permission information on block-unit data processing is set, and in accordance with the set permission information, the memory interface unit includes means for determines whether or not the block-unit data processing can be executed.
Preferably, only when a type of processing corresponding to the access command from the control unit is within a range of processing types which are set executable by the access permission table does the memory interface unit execute the type of processing, and sets a process-success flag in accordance with a success of the processing in the memory interface unit, and the control unit executes processing thereof on condition that the setting of the process-success flag in the memory interface unit is verified.
When the access command designates a data-file reading process, the control unit may execute a process in which the address of a data file to be read is selected from a file allocation table corresponding to the data storage area in the data storage unit and is transmitted to the memory interface unit, and after receiving the address of the data file, the memory interface unit may determine, by using the received address to refer to the access permission table, whether or not an address-assigned area having the address is a data-readable area, so that only when the address-assigned area is a data-readable area does the memory interface unit execute the data-file reading process.
When the access command designates a data-file writing process, the control unit may execute a process in which the address of a data file to be written is selected from the data storage area in the data storage unit and is transmitted as a write address to the memory interface unit, and after receiving the write address, the memory interface unit may determine, by using the received write address to refer to the access permission table, whether or not an address-assigned area having the write address is data-writable area, so that only when the address-assigned area is a data-writable area does the memory interface unit execute the data-file writing process.
In the access permission table, in the form of additional data, an integrity check value which is generated based on data in the access permission table may be included as a check value for verifying whether or not the data in the access permission table is interpolated. The memory interface unit may include a cryptosystem unit for, based on the integrity check value, executing the integrity checking of the access permission table. When the cryptosystem unit determines that the access permission table has not been interpolated, the access permission table may be set in the memory interface unit, and data processing may be executed based on the determination of access permission in accordance with the set access permission table.
In the access permission table, in the form of additional data, an integrity check value which is generated based on data including data in the access permission table and an identifier unique to the data storage unit may be included as a check value for verifying whether or not the data in the access permission table is interpolated. The verification based on the integrity check value by the memory interface unit may be executed as the verification of whether or not the access permission table is stored in valid media, in addition to the verification of whether or not the data in the access permission table is interpolated. When verifying the validity of storage, the access permission table may be set in the memory interface unit, and data processing may be executed based on the determination of access permission in accordance with the set access permission table.
When mutual authentication is established as a result of mutual authentication with the data storage unit, the access permission table, which is stored in the memory of the data storage unit, may be set in the memory interface unit.
Preferably, the data storage unit is a flash memory having a data storage area which has a plurality of blocks, each of which consists of a plurality of sectors in which each of the sectors has a predetermined data capacity, in the access permission table, either information on whether or not block-unit data erasure can be performed or information on whether or not block-unit data playback can be performed is set, and in accordance with either information set in the access permission table, the memory interface unit determines whether or not block-unit data processing can be executed.
According to a second aspect of the present invention, there is provided a data storage device including a data storage area consisting of a plurality of blocks, each of which consists of a plurality of sectors which each have a predetermined data capacity. In the data storage area, an access permission table in which permission information on block-unit data processing in the data storage area is set is stored.
Preferably, data-processing-permission information on blocks of the data storage area in which the access permission table is stored is set to indicate that the blocks are treated as an erasure-prevented area.
The data storage device may further include a cryptosystem unit for executing mutual authentication with a data processing device which performs data transfer to the data storage device. When the mutual authentication is established, a process which transfers the access permission table to the data processing device may be executed.
According to a third aspect of the present invention, there is provided a data processing method for a data processing device including a memory interface unit for accessing a data storage unit and a control unit for controlling the memory interface unit. The memory interface unit performs the steps of: setting therein an access permission table which is stored in a data storage area in the data storage unit; determining, by referring to the access permission table in response to an access command to access the data storage unit, whether or not to execute the access command; and executing only a process which is set executable by the access permission table.
Preferably, the data storage area in the data storage unit is a flash memory having a plurality of blocks, each of which consists of a plurality of sectors which each have a predetermined data capacity; in the access permission table, permission information on block-unit data processing is set; and in accordance with the set permission information, the memory interface unit includes means for determines whether or not the block-unit data processing can be executed.
Preferably, only when a type of processing corresponding to the access command from the control unit is within a range of processing types which are set executable by the access permission table does the memory interface unit execute the type of processing, and sets a process-success flag in accordance with a success of the processing in the memory interface unit; and the control unit executes processing thereof on condition that the setting of the process-success flag in the memory interface unit is verified.
When the access command designates a data-file reading process, the control unit may execute a process in which the address of a data file to be read is selected from a file allocation table corresponding to the data storage area in the data storage unit and is transmitted to the memory interface unit, and after receiving the address of the data file, the memory interface unit may determine, by using the received address to refer to the access permission table, whether or not an address-assigned area having the address is a data-readable area, so that only when the address-assigned area is a data-readable area does the memory interface unit execute the data-file reading process.
When the access command designates a data-file writing process, the control unit may execute a process in which the address of a data file to be written is selected from the data storage area in the data storage unit and is transmitted as a write address to the memory interface unit, and after receiving the write address, the memory interface unit may determine, by using the received write address to refer to the access permission table, whether or not an address-assigned area having the write address is data-writable area, so that only when the address-assigned area is a data-writable area does the memory interface unit execute the data-file writing process.
In the access permission table, in the form of additional data, an integrity check value which is generated based on data in the access permission table may be included as a check value for verifying whether or not the data in the access permission table is interpolated. The memory interface unit may execute the steps of: executing, based on the integrity check value, the integrity checking of the access permission table; setting the access permission table in the memory interface unit when it is determined that the access permission table has not been interpolated; and executing data processing based on the determination of access permission in accordance with the set access permission table.
In the access permission table, in the form of additional data, an integrity check value which is generated based on data including data in the access permission table and an identifier unique to the data storage unit may be included as a check value for verifying whether or not the data in the access permission table is interpolated. The memory interface unit may execute the steps of: executing the verification based on the integrity check value as the verification of whether or not the access permission table is stored in valid media, in addition to the verification of whether or not the data in the access permission table is interpolated; setting therein the access permission table when the validity of storage is verified; and executing data processing based on the determination of access permission in accordance with the set access permission table.
When mutual authentication is established as a result of mutual authentication with the data storage unit, the access permission table, which is stored in the memory of the data storage unit, may be set in the memory interface unit.
Preferably, the data storage unit is a flash memory having a data storage area which has a plurality of blocks, each of which consists of a plurality of sectors in which each of the sectors has a predetermined data capacity; in the access permission table, either information on whether or not block-unit data erasure can be performed or information on whether or not block-unit data playback can be performed is set; and in accordance with either information set in the access permission table, the memory interface unit determines whether or not block-unit data processing can be executed.
According to a fourth aspect of the present invention, there is provided a program providing medium for providing a computer program which controls a computer system to execute data processing by a data processing device including a memory interface unit for accessing a data storage unit and a control unit for controlling the memory interface unit. The computer program comprises the steps of: setting an access permission table which is stored in a data storage area in the data storage unit; determining, by referring to the access permission table in response to an access command to access the data storage unit, whether or not to execute the access command; and executing only a process which is set executable by the access permission table.
The program providing media according to the fourth aspect of the present invention is, for example, a medium for providing a computer program in a computer-readable form to a general-purpose computer system capable of executing various types of program codes. The form of the medium is not particularly limited and may be a recording medium such as a CD, an FD, an MO, or a transmission medium such as a network.
The above program providing media define cooperative relationships in structure and function with a computer program in order to implement the function of a predetermined computer program on a computer system. In other words, by installing a computer program into a computer system with each program providing medium, the computer system exhibits cooperative operations, and operations and advantages which are similar to those in other aspects of the present invention can be obtained.
According to the present invention, a storage device is always accessed in accordance with a BPT set in a memory interface unit, irrespective of the type of processing performed by a control unit and a command, whereby the data (content) of rewrite-prevented recording media can be effectively prevented from being rewritten, and content protection can be enhanced.
According to the present invention, processing that prevents a BPT itself from being rewritten.
Further objects, features and advantages of the present invention will become apparent from the following description of the preferred embodiments with reference to the attached drawings.